package model.semantics;

import java.util.List;

import model.State;
import model.TurtleState;

public abstract class SingularOperation extends Operation<Integer>
{

	protected SingularOperation()
	{
		super(0);
	}

	@Override
	protected Integer evaluateSafely(State<Integer> state, List<Integer> values) {
		return evaluateValue((TurtleState)state);
	}

    /**
     * Given a value, transform it into a new value.
     * 
     */
    protected abstract Integer evaluateValue(TurtleState state);

}
